package cn.sixos.action;

import javax.annotation.Resource;
import javax.servlet.http.HttpSession;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import cn.sixos.bo.UserBo;
import cn.sixos.entity.User;
import cn.sixos.vo.UserVo;

@Controller
@RequestMapping("/user")
public class UserAction extends BaseAction {
	@Resource
	private UserBo userBo;
	
	//学生注册
	//参数：无
	//返回：user-save页面
	@RequestMapping("gotoSave")
	public String gotoSave(){
		//TODO
		return "";
	}
	
	//学生注册
	//参数：user实体
	//返回：无
	@RequestMapping("save")
	public void save(User user){
		//TODO
		//调用dao保存user
	}
	
	//学生激活状态
	//参数：long id
	//返回:成功激活页面
	@RequestMapping("userSate")
	public String userSate(long id){
		//TODO
		//调用bo的doState方法
		//返回
		return "";
	}
	
	//学生修改信息
	//参数：long id
	//返回：user-update页面
	@RequestMapping("gotoUpdate")
	public ModelAndView gotoUpdate(long id){
		ModelAndView mav = new ModelAndView();
		//TODO
		// 查询出一个VO对象 Bo中的queryUser
		// 把对象放到ModelAndView对象中
		// 设置视图逻辑名称
		// 把ModelAndView对象返回给前端控制器
		return mav;
	}
	
	//学生修改信息
	//参数：UserVo
	//返回：user-list页面
	@RequestMapping("update")
	public String update(UserVo vo){
		//TODO
		//调用Bo的doUpdate方法
		//返回
		return "";
	}
	
	//修改密码
	//参数：UserVo
	//返回：成功返回修改成功，失败返回信息：原密码不匹配
	@RequestMapping("changepassword")
	public ModelAndView changepassword(UserVo vo){
		ModelAndView mav = new  ModelAndView();
		//TODO
		return mav;
	}
	
	//学生重置密码
	//参数：无
	//返回：user-Resetpassword页面
	@RequestMapping("gotoResetPassword")
	public String gotoResetPassword(){
		//TODO
		//返回
		return "";
	}
	
	//学生重置密码
	//参数：UserVo
	//返回：成功显示重置密码成功，失败显示：用户不存在
	@RequestMapping("resetpassword")
	public ModelAndView resetpassword(String userName,String userEmail){
		ModelAndView mav = new ModelAndView();
		//TODO
		// 调用Bo中的doResetPassword的方法
		// 把对象放到ModelAndView对象中
		// 设置视图逻辑名称
		// 把ModelAndView对象返回给前端控制器
		return mav;
	}
	
	//学生选课
	//参数：session
	//返回：user-list页面
	@RequestMapping("userList")
	public ModelAndView userList(HttpSession session){
		ModelAndView mav = new ModelAndView();
		//TODO
		//从session中取得id
		//分别调用bo的querySelected和queryNotselected方法
		// 把对象放到ModelAndView对象中
		// 设置视图逻辑名称
		// 把ModelAndView对象返回给前端控制器
		return mav;
	}
	
	//学生选课
	//参数：session
	//返回：userList.do
	@RequestMapping("selectCourse")
	public ModelAndView selectCourse(HttpSession session,long[] ids){
		ModelAndView mav = new ModelAndView();
		//TODO
		//从session中取得id
		//调用bo的doSelectCourse
		// 把对象放到ModelAndView对象中
		// 设置视图逻辑名称
		// 把ModelAndView对象返回给前端控制器
		return mav;
	}
}
